在linux中,我可以使用lsof-i如下函数:defFindProcessUsingPort(portnum):importosfp=os.popen("lsof-i:%s"%portnum)lines=fp.readlines()fp.close()pid=Noneiflen(lines)>=2:pid=int(lines[1].split()[1])returnpid有没有跨平台的方法来解决这个问题?作为相关引用,一旦我知道进程ID,psutil库非常好,可以让我以跨平台的方式为它确定各种有用的过程信息。我现在无法让第一部分跨平台工作(找到pid)。如果不熟悉lsof-i开关,输
关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭4年前。Improvethisquestion我想监听一个TCP端口。场景:SIP服务器和客户端程序。SIP服务器可能使用端口5010监听并建立多个连接。客户端通过端口5010从他的电脑连接到服务器。当在该端口上收到数据包时,必须在客户端PC上触发一个事件。有什么想法可以从哪里开始吗?
出于测试目的,我想构建一个服务器来监听某个接口(interface)(例如eth0)上每个端口(或至少大多数端口)的TCP连接。服务器通过SSH访问到eth1,所以没有问题。(我不关心UDP或其他协议(protocol))我想做一种特殊的中间盒检测/分析,因此我需要能够完全建立连接。拥有HTTP连接是最好的,因为“客户端”可以在浏览器中作为JS实现。我从一个简单的jetty服务器开始,但必须意识到jetty至少需要在它正在监听的每个端口上生成线程。当我想监听数千个端口时,这会导致问题。或者有解决办法吗?我的下一个尝试是使用iptables:sudoiptables-tnat-APRER
我看过一个使用socat接受sslTCP流量并将流量转发到非ssl主机的示例:socatTCP-LISTEN:443,reuseaddr,fork"^OPENSSL-SERVER,cert=server.pem|TCP:somehost:80"是否可以反其道而行之?IE。我有一台启用了ssl的远程主机,需要客户端证书,但我的客户端只能通过非ssl连接进行连接。我理解这种方法的安全隐患。 最佳答案 我的答案是:$socatTCP-LISTEN:51000,fork,reuseaddrOPENSSL:remotehost:51000,c
我有一个监听器套接字,它像TCP服务器通常那样接受、接收和发送。我在下面给出了我的接受和接收代码,它与exampleonMicrosoft'sdocumentation没有什么不同。.主要区别是我的服务器在停止接收数据后不会终止连接(我不知道这是否是一个糟糕的设计?)。privatevoidon_accept(IAsyncResultxResult){Socketlistener=null;Sockethandler=null;TStateObjectstate=null;Taskconsumer=null;try{mxResetEvent.Set();listener=(Socket
是否有某种方法可以用来从浏览器中启动一些东西来监听tcp连接?我探索了Silverlight,但看起来我只能使用Silverlight应用程序连接到第3方。我正在寻找的是让用户在可以接收第三方连接的浏览器中运行一些东西。我开始认为它有很大的滥用可能性,因此不允许这样做,但我希望我忽略了一些事情。 最佳答案 一般来说,模拟浏览器监听连接的流行方法是在服务器上监听它们,然后使用comet,long-polling,reverseAJAX或类似的技术将消息从服务器“推送”到浏览器。这样您就可以遵守所有规则和限制,并且您将做一些经过长期
我只在尝试这段代码时收到TCP消息:fromsocketimport*fromselectimportselectdefread_tcp(s):whileTrue:client,addr=s.accept()data=client.recv(8000)client.close()print"RecvTCP:'%s'"%datadefread_udp(s):whileTrue:data,addr=s.recvfrom(8000)print"RecvUDP:'%s'"%datadefrun():host=''port=8888size=8000backlog=5#createtcpsock
我想在对它们运行测试之前检查api和应用程序是否正在运行。我知道我可以使用在CLI中获取开放端口列表sudolsof-iTCP-sTCP:LISTEN-n-P但是我想写一个python脚本来这样做。关于我应该使用什么库或我应该如何做有什么想法吗? 最佳答案 我找到了一个使用套接字的端口检查器here并且有效。#!/usr/bin/envpython#-*-coding:utf-8-*-importsocketimportreimportsysdefcheck_server(address,port):#CreateaTCPsocke
我想创建充当HTTP监听器并可以处理大约500个客户端的Windows服务。这种服务有什么特别的注意事项吗?我有点混淆了HTTPListener类和TCPListener类。将哪一个用于Windows服务将:接受客户端连接(500左右)处理客户请求调用另一个基于Http的服务返回一些值给调用客户端这就是我启动监听器所做的事情。listener=newHttpListener();listener.Prefixes.Add("http://localhost:8080/");listener.Start();listener.BeginGetContext(newAsyncCallbac
似乎所有的PAAS提供商,包括openshift,都是该服务终止http/https流量,查看Host:header,然后将请求转发到您应用上的单个监听端口。我有一个不幸的应用程序需要传入的http监听器和原始TCP监听器。PAAS服务使用的代理似乎只支持websockets的升级(如果有的话)。有没有人有任何“巧妙”的变通办法可以用来部署需要监听两个端口(其中一个不是HTTP)的应用程序?或者有没有人有一个“真正聪明”的解决方法,可以让我通过单个监听端口获得相同的效果? 最佳答案 对于OpenShiftOnline,这里有一个常见